<?php

//
//  Copyright (C) 2004-2006  Autodesk, Inc.
//
//  This library is free software; you can redistribute it and/or
//  modify it under the terms of version 2.1 of the GNU Lesser
//  General Public License as published by the Free Software Foundation.
//
//  This library is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//  Lesser General Public License for more details.
//
//  You should have received a copy of the GNU Lesser General Public
//  License along with this library; if not, write to the Free Software
//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
//

?>

<?php
require_once("config.php");
require_once("utils.php");
require_once(ROOT_DIR_CLASES.'/cCliente.php');
require_once(ROOT_DIR_CLASES.'/cResultado.php'); 
require_once(ROOT_DIR_CLASES.'/posiMovilSenial.php');
require_once(ROOT_DIR_CLASES.'/fijoSenial.php');
require_once(ROOT_DIR_CLASES.'/ChatMessage.php');
require_once 'JSON.php';

class QueryUltimaSenial
{
	private $args = null;
	

	function __construct($args)
	{
		$this->args = $args;
	}

    

	function Execute()
	{
		$result = array();
		$cuenta = $this->args['CUENTA'];
		$objetivoDB = $this->args['OBJETIVODB'];
		$iTipoCuenta = "";
		if($objetivoDB==5){
			$iTipoCuenta= $this->args['TIPOCUENTA'];
		}
		if ( (($objetivoDB)&&($objetivoDB == 1)) || ($iTipoCuenta != "" && $iTipoCuenta==1) ){ //ES FIJO
			$senial = new fijoSenial();
			$ultimaSenial = BykomCliente::InfoCuenta($cuenta);
			$senial->estado = $ultimaSenial->campo('Estado',0);
			$senial->ultimaSenial = $ultimaSenial->campo('USR',0);
		}else{ //ES MOVIL
        	$senial = new posiMovilSenial();
			$datosPosicionamiento = BykomCliente::Consulta_PosicionActual_Avl($cuenta);			
			if ($datosPosicionamiento->cantidad()>0){
				$senial->direccionAbrev = trim(BykomCliente::Obtener_Direccion_Abreviada($datosPosicionamiento->campo('direccion',0)));
				$senial->fecha = $datosPosicionamiento->campo('fechaMensaje',0);
				$senial->velocidad = $datosPosicionamiento->campo('velocidad',0). " Km/h";
				$senial->sentido = BykomCliente::Obtener_Palabra_Sentido($datosPosicionamiento->campo('sentido',0));
				$senial->evento = $datosPosicionamiento->campo('evento',0);
				$senial->eventoDetalle	= utf8_encode($datosPosicionamiento->campo('eventoDetalle',0));
				$senial->latitud = quitCero($datosPosicionamiento->campo('latitud',0));
				$senial->longitud = quitCero($datosPosicionamiento->campo('longitud',0));
				$contactoMotor = $datosPosicionamiento->campo('contacto',0);
				if ($contactoMotor == NULL || trim($contactoMotor) == '') {
					$senial->contactoMotor = "Desconocido";
				} else if ($contactoMotor == 0) {
					$senial->contactoMotor = "Apagado";
				} else if ($contactoMotor == 1) {
					$senial->contactoMotor = "Encendido";
				}
				
			}
		}
		array_push($result, $senial);
		//si existe tambien el parametro 'TABLAID' agrego los mensajes para el chat
		if (array_key_exists('TABLAID', $this->args)){
			$tablaId = $this->args['TABLAID'];
			$objetivo = $this->args['OBJETIVO'];
			$chatMensajes = array();
			$mensajes = BykomCliente::Consultar_Mensajes($tablaId, $objetivo);
			for($i = 0;  $i < $mensajes->cantidad(); $i++ ) {
        		$mensaje = new ChatMessage();
        		$mensaje->id = $mensajes->campo('id',$i);
				$mensaje->origen = $mensajes->campo('origen',$i);
				$mensaje->labelOrigen = $mensajes->campo('labelOrigen',$i);
				$mensaje->destino = $mensajes->campo('destino',$i);
				$mensaje->labelDestino = $mensajes->campo('labelDestino',$i);
				$mensaje->objetivo = $mensajes->campo('objetivo',$i);
				$mensaje->leido = $mensajes->campo('leido',$i);
				$mensaje->mensaje = $mensajes->campo('mensaje',$i);
				$mensaje->fechaHora = $mensajes->campo('fechahora',$i);
				array_push($chatMensajes, $mensaje);
				}		
			array_push($result, $chatMensajes); //MENSAJES [1]
			}   
		return $result;
	}
}
?>